package jogoRpgSolo;

import java.util.Scanner;
public class Narrativa {

    public static Scanner tec = new Scanner(System.in);

    public static void main(String[] args) {
         
        Print("RPG Aventura Solo Grupo 07\nDurante a Revolução Farroupilha, havia a necessidade de se manter informado"
                + ", o mensageiro era uma boa rede de comunicação.\nDigite um nome para o mensageiro: ");
        String nomeP = tec.nextLine();
        Personagens mensageiro = new Personagens();
        Recursos cantil = new Recursos();
        Recursos farda = new Recursos();
        Desafios des = new Desafios();
        mensageiro.setNomePerson(nomeP);
        mensageiro.Escolha("[S] Sim --------- [N] Não", "Consultar mapa?");
        if (mensageiro.pega(mensageiro.getEscolha()) == 1)
            Print(cantil.getMapa());
        
        Print(mensageiro.getNomePerson() + " encontra-se na fronteira leste, há dois caminhos a serem seguidos:"
                + "o deserto e o charco. O mensageiro também poderá andar somente à noite\nVocê deve escolher um dos caminhos: ");
        int i= 0;
        while (i < 1) {
            Print("[C] Charco ------------ [D]  Deserto do São João");
            String decisaoInicial = tec.nextLine();
            if (decisaoInicial.equalsIgnoreCase("c")) {
                Cenarios charco = new Cenarios();
                charco.setNomeCenario("Charco");
                Charco(charco, mensageiro, des);
                i++;
            } else if (decisaoInicial.equalsIgnoreCase("d")) {
                Cenarios deserto = new Cenarios();
                deserto.setNomeCenario("Deserto");
                Deserto(deserto, mensageiro, cantil,farda , des);
                i++;
            } else {
                Print("Caractere inválido... Digite novamente:");
            }
        }
    }
    public static void Deserto(Cenarios deserto, Personagens pers, Recursos cantil, Recursos farda, Desafios d) {
            Print("Você escolheu o"+deserto.getNomeCenario()+"\nDia 1 \nVocê fez uma boa escolha pois o caminho é mais curto e se tomar as decisões certas chegará em 5 dias."
                + "\nVocê possui um cantil cheio d'água e um cantil vazio reserva. \nAproximando-se do deserto, " 
                + pers.getNomePerson() + " avista um poço...");
            
            cantil.setNome("Cantil");
            cantil.setQuant(1);
            pers.Escolha("[S] Sim --------- [N] Não","Encher "+ cantil.getNome()+"?");
            cantil.setQuant(pers.pega(pers.getEscolha()));
            Print("Ok " + pers.getNomePerson() + " você tem " + cantil.getQuant() + " cantil(is) \nEstá amanhecendo... É melhor me esconder e descançar..."
                    + "\nDia 2 \n-Ah não, soldado a vista e não tem como fugir! \n-AHHH...");
            
            deserto.PassaDesafio("O jogo terminou, " + pers.getNomePerson() + 
                    " até matou o imperial mas ficou muito, muito mal e morreu de sede um dia após a luta...", cantil, d);
            
            Print("-Por sorte ganhei a luta, mas fiquei muito cansado e com sede... \nÉ melhor me esconder e descançar... \nDia 3"
                        + "\nSegundo Soldado \nEscolha uma das alternativas: ");

            d.dtres("[A] Correr ---- [B] Lutar ---- [C] Esconder", "Mensageiro "+ pers.getNomePerson()+" morreu atingido pelo facão do imperial");
            d.setDesCorreta("b");
            
            Print("Dia 4\nTerceiro Soldado \nEscolha uma das alternativas: ");     
            d.dtres("[A] Facada ---- [B] Degola ---- [C] Soco ", "Mensageiro "+ pers.getNomePerson()+" morreu atingido pelo machado do imperial");
            
            farda.setNome("Farmaneto");
            pers.Escolha("[S] Sim --------- [N] Não","Pegar "+farda.getNome()+ "?");
            farda.setQuant(pers.pega(pers.getEscolha()));
            System.out.println(farda.getQuant());
            d.setRecNecessario(1);
            Print("Barreira de Imperiais a frente");
            deserto.PassaDesafio("O jogo terminou, para " + pers.getNomePerson()+
                    "\nEra necessário o fardamento para passar sem ser notado pela barreira", farda, d);
            Print("O mensageiro " + pers.getNomePerson() + " conseguiu passar despercebido pela barreira \nDia 5 \nEntregou a carta ao presidente com sucesso");
        }

    public static void Charco(Cenarios charco, Personagens mensageiro, Desafios des) {
          
            Recursos barco = new Recursos();
            Recursos roupa = new Recursos();
            Print("Você escolheu o "+charco.getNomeCenario()+"\nDia 1");
            mensageiro.Escolha("[S] Sim --------- [N] Não","Deseja saber a previsão do tempo ?");
            mensageiro.Previsao();

            mensageiro.Escolha("[S] Sul --------- [N] Norte","Escolha sul ou norte para seguir sua jornada ");
                if (mensageiro.pega(mensageiro.getEscolha()) == 1) {
                    Cenarios charcosul = new Cenarios();
                    charcosul.setNomeCenario("Charco, caminho do Sul");
                    charcosul(charcosul, mensageiro, barco, des);
                    } else{
                    Cenarios charconorte = new Cenarios();
                    charconorte.setNomeCenario("Charco, caminho do Sul");
                    charconorte(charconorte, mensageiro, roupa, des);  
                }
    }   
                    
    public static void charcosul(Cenarios charcosul, Personagens mensageiro, Recursos barco, Desafios des) {
                    Print(charcosul.getNomeCenario()+"\nDia 2 \nBatalha da ponte \nEscolha uma das alternativas: ");
                    des.setDesCorreta("b");
                    des.dtres("[A] Facada ---- [B] Degola ---- [C] Soco ", "Mensageiro "+ mensageiro.getNomePerson()+" morreu atingido pela faca do imperial");
                    Print("Dia 3 \nO " + mensageiro.getNomePerson() + " avista um barco á frente...");
                    
                    barco.setNome("Barco");
                    mensageiro.Escolha("[S] Sim --------- [N] Não","Pegar "+barco.getNome()+"?");
                    barco.setQuant(mensageiro.pega(mensageiro.getEscolha()));
                    des.setRecNecessario(1);
                    charcosul.PassaDesafio("O jogo terminou, para " + mensageiro.getNomePerson()+
                            "\nEra necessário o barco para continuar pelo rio", barco, des);
                    
                    charcosul.Tempo();
                    if (charcosul.isChuva() == false){ 
                        Print("Com o periodo de pouca chuva o mensageiro não conseguiu continuar"
                                + "navegando e morreu atacado por um jacaré ao sair do barco...");
                    System.exit(0);
                    }
                    Print("O mensageiro passou dias navegando\nDia 8\nO mensageiro está com fome");
                    mensageiro.Escolha("[S] Sim --------- [N] Não","Procurar alimento?");
                    mensageiro.pega(mensageiro.getEscolha());
                        
                        if (mensageiro.pega(mensageiro.getEscolha()) != 1) {
                            Print("O " + mensageiro.getNomePerson()+" morreu por ficar sem comer por muitos dias");
                        }
                        if (mensageiro.pega(mensageiro.getEscolha()) == 1) {
                            des.setDesCorreta("b");
                            Print("Procurar onde?");
                            des.dtres("[A] Na Mata ---- [B] No Rio ---- [C] Caça capincho", "Morreu foi morto por um lobo guará");
                            Print("Dia 10\nO persongem conseguiu\nEntregou a carta ao presidente com sucesso"); 
                    }
                    }

    public static void charconorte(Cenarios charconorte, Personagens mensageiro, Recursos roupa, Desafios des) {
                    Print(charconorte.getNomeCenario()+"\nDia 2\nUma roupa de camuflagem logo a frente...");
                    roupa.setNome("Roupa de camuflagem");
                    mensageiro.Escolha("[S] Sim --------- [N] Não","Pegar "+roupa.getNome()+"? "); 
                    roupa.setQuant(mensageiro.pega(mensageiro.getEscolha()));
                    Print("Está amanhecendo... É melhor me esconder e descançar...\nDia 3\n-Ah não, soldado a vista... vou tentar passar sem ser percebido."
                            + "\n-AHHH NÃO... ele me viu...");
                    des.setRecNecessario(1);
                    charconorte.PassaDesafio("O jogo terminou, " + mensageiro.getNomePerson() + 
                            " até matou o imperial mas ficou muito ferido e morreu", roupa, des);
                   
                    Print("-Por sorte ganhei a luta, mas fiquei muito cansado...\nDia 4");
                     des.setDesCorreta("b");
                    charconorte.Tempo();
                    if (charconorte.isChuva() == true){ 
                        Print("Com o periodo de muita chuva o mensageiro não conseguiu continuar "
                                + "caminhando pelo seu caminho, acabou se afogando na corredeira");
                    System.exit(0);
                    }
                    Print("Segundo Soldado\nEscolha uma das alternativas: ");
                    des.dtres("[A] Correr ---- [B] Lutar ---- [C] Esconder", "Mensageiro "+ mensageiro.getNomePerson()+" morreu atingido pelo facão do imperial");
                    des.setDesCorreta("c");
                    Print("Dia 5\nTerceiro Soldado\nEscolha uma das alternativas: ");
                    des.dtres("[A] Facada ---- [B] Degola ---- [C] Soco ", "Mensageiro "+ mensageiro.getNomePerson()+" morreu atingido pelo machado do imperial");
                    
                    mensageiro.Escolha("[S] Sim --------- [N] Não","Pegar fardamento do imperial?");
                    roupa.setQuant(mensageiro.pega(mensageiro.getEscolha()));
                    Print("Barreira de Imperiais a frente");
                    des.setRecNecessario(2);
                    
                    charconorte.PassaDesafio("O jogo terminou, para " + mensageiro.getNomePerson()+
                            "\nEra necessário o fardamento para passar sem ser notado pela barreira", roupa, des);
                   
                    Print("O mensageiro " + mensageiro.getNomePerson() + " consguiu passar despercebido pela barreira"
                    + "\nDia 5\nEntregou a carta ao presidente com sucesso");
                }

    public static void Print(String a){
        System.out.println("");
        System.out.print(a);
        System.out.println("");
    } 
}